package MyFramePro.MyPermission;

import MyFramePro.Domain.Entity.LoginUser;
import MyFramePro.Utils.SecurityUtils;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 这里是自定义的权限校验方法
 */
@Component("myPer")
public class MyPermission {

    /**
     * 这里是判断当前认证用户是否具有传入的 authority 权限
     */
    public boolean hasAuthority(String authority){
        //1.获取当前认证用户的权限信息
        //1.1若是超级管理员，则直接放行
        if(SecurityUtils.isAdmin()){
            return true;
        }
        //1.2否则继续获取对应的权限信息
        LoginUser loginUser = SecurityUtils.getLoginUser();
        List<String> securityMsgs = loginUser.getSecurityMsgs();

        //2.判断当前用户的权限集合中，是否存在传入的 authority 权限
        return securityMsgs.contains(authority);

    }

}
